home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0256
/
mdebug22.exe
/
WHATS.NEW
< prev
Wrap
Text File
|
1992-11-21
|
17KB
|
394 lines
MDEBUG
Version V2.05
Highperformance Debugging Tool für PCs
Änderungen und Erweiterungen ab der Version V2.00
Copyright 1992 by
Bernd Schemmer
All Rights reserved.
Behobene Fehler in der Version V2.00 vom 01.07.1992
───────────────────────────────────────────────────
■ Die Taste <ALT-F5> im Interpreter hat in der vorherigen Version (nur
in den Kopien von MDEBUG.COM mit einem Datum vor dem 01.04.1992)
einen Systemabsturz verursacht. Der Fehler wurde behoben.
■ Das Zeichen '■' ist, im Gegensatz zur Angabe in der Dokumentation der
vorherigen Version, bei der Suche einer Bytefolge über den Befehl
SH im Interpreter KEIN Jokerzeichen (wohl aber bei der Suche im
Monitor).
■ Die Offsets in der Tabelle mit dem Aufbau der Datenstruktur von
MDEBUG (Funktion 2 der Kommandotreiber) ab dem Offset 3Ah (exklusive)
waren in der Dokumentation der vorherigen Version falsch angegeben.
Richtig ist:
┌─────────────────┬───────┬────────────────────────────────┐
│ Offset │ │ Funktion der Speicherstelle │
│ (relativ zu DI) │ Länge │ │
╞═════════════════╪═══════╪════════════════════════════════╡
│ 00h .. 3Ah │ │ Angaben waren korrekt │
│ │ │ │
│ │ │ Die nächsten Angaben waren │
│ │ │ fehlerhaft, sie müssen lauten: │
│ 3Ah │ 18h │ gesicherte Registerwerte (...) │
│ 52h │ 18h │ gesicherte Registerwerte (...) │
│ │ │ │
│ 6Ah │ 4h │ Adresse des DOS-Info-Blocks │
│ │ │ │
│ ... │ │ Die Offsets der folgenden │
│ │ │ Felder müssen jeweils um 18h │
│ │ │ (= 24xD) erhöht werden │
└─────────────────┴───────┴────────────────────────────────┘
Erweiterungen der Version V2.00 vom 01.07.1992
──────────────────────────────────────────────
■ MDEBUG benutzt jetzt Buchstaben-Schalter zur Anzeige verschiedener
Schalterstellungen. Diese werden jeweils auf den oberen Rahmen der
Fenster des Monitors bzw. des Interpreters ausgegeben.
Im Monitor sind folgende Schalter implementiert:
┌──────────┬───────┬──────────────────────────────────┬───────────┐
│ Schalter │ Wert │Bedeutung │ Taste │
╞══════════╪═══════╪══════════════════════════════════╪═══════════╡
│ Monitor- │ b │ direkte Änderungen im Monitor │ <CTRL-B> │
│ Mode │ │ möglich │ │
│ │ B │ direkte Änderungen im Monitor │ │
│ │ │ NICHT möglich │ │
├──────────┼───────┼──────────────────────────────────┼───────────┤
│ Update- │ * │ Monitor-Inhalt wird laufend │ <F9> │
│ Mode │ │ upgedated │ │
│ │ - │ Monitor-Inhalt wird nur nach │ │
│ │ │ einem Tastendruck upgedated │ │
└──────────┴───────┴──────────────────────────────────┴───────────┘
Im Interpreter sind folgende Schalter implementiert:
┌──────────┬───────┬──────────────────────────────────┬───────────┐
│ Schalter │ Wert │Bedeutung │ Taste │
╞══════════╪═══════╪══════════════════════════════════╪═══════════╡
│ Upcase- │ U │ Buchstaben werden in Großbuch- │ <CTRL-U> │
│ Mode │ │ staben konvertiert │ │
│ │ u │ Buchstaben werden NICHT in Groß- │ │
│ │ │ buchstaben konvertiert │ │
├──────────┼───────┼──────────────────────────────────┼───────────┤
│ Quiet- │ Q │ akustische Ausgaben sind aus- │ <CTRL-Q> │
│ Mode │ │ geschaltet │ │
│ │ q │ akustische Ausgaben sind einge- │ │
│ │ │ schaltet │ │
├──────────┼───────┼──────────────────────────────────┼───────────┤
│ Input- │ I │ Eingaben erfolgen im INSERT- │ <INSERT> │
│ Mode │ │ Modus │ │
│ │ i │ Eingaben erfolgen im OVERWRITE- │ │
│ │ │ Modus │ │
└──────────┴───────┴──────────────────────────────────┴───────────┘
■ Im Monitor von MDEBUG wird nun der Wert des aktuellen Bytes auch im
dezimalen Format und als ASCII-Code ausgegeben.
■ Die Eingabeparameter der Funktion 3h des Interfaces für die Kommando-
treiber wurden erweitert.
■ Fehlerhafte oder falsche Parameter führen jetzt zum Programm-Abbruch.
■ Beim Parameter 'HELP' reicht jetzt die Angabe eines Pfades falls die
Hilfstextdatei 'MDEBUG.HLP' heißt.
■ Im Scrollbar der Online-Hilfe von MDEBUG werden jetzt auch die unge-
fähren Positionen der Marker angezeigt.
■ Die Meldungen von MDEBUG wurden erweitert.
■ Die Werte der Errorlevel von MDEBUG wurden geändert.
■ Das Util CALLMDB erkennt jetzt ebenfalls den Parameter '#' (siehe
Beschreibung der Parameter von MDEBUG).
■ Der Speicherbedarf des Kommandotreibers MDHIDSRV.COM konnte durch
weitere Optimierungen um 400 Byte gesenkt werden.
■ Die Abbruchtaste für das Util SHOWINT ist jetzt <CTRL-X>.
Korrekturen und Erweiterungen der Version V2.00 des Treibers MDDISDRV.COM
─────────────────────────────────────────────────────────────────────────
■ Der Algorithmus zum seitenweisen Rückwärtsscrollen (Taste <PageUp>)
wurde wesentlich verbessert. Er ist jetzt ca. 50 % schneller und zu-
sätzlich auch noch sehr viel zielgenauer als vorher!
■ Im Disassembler können jetzt auch Referenzen auf bestimmte Speicher-
stellen gesucht werden. Hierfür wurden folgende Tastenbelegungen neu
implementiert:
<F8>
Sucht eine Code-Referenz (z.B. 'jmp cb', 'int n', 'jc cb', etc.) auf
eine beliebige Adresse ab der Adresse in der aktuellen Zeile.
<SHIFT-F8>
Sucht eine Daten-Referenz (z.B. 'mov ax,[ew]') auf eine beliebige
Adresse ab der Adresse in der aktuellen Zeile.
In beiden Fällen kann als Adresse, für die eine Referenz gesucht
werden soll, eine beliebige Kombination aus Segment und Offset ein-
gegeben werden. Beachtet werden muß, daß bei der Suche nach einer
Daten-Referenz der eingegebene Wert für das Segment ignoriert wird.
Gesucht wird immer nur bis zum Ende eines Segments. Die Suche kann
jederzeit über die Taste <ESC> abgebrochen werden. Falls die Suche
abgebrochen oder keine Referenz gefunden wurde, wird die Anzeige des
Disassemblers nicht verändert. In diesen Fall kann zudem direkt nach
der Suche über die Taste <0> der letzte überprüfte Befehl ermittelt
werden (d.h. falls eine abgebrochene Suche ab dem zuletzt überprüften
Befehl fortgesetzt werden soll, müssen hierfür direkt nach der Suche
die Tasten <0> und <F8> bzw. <SHIFT-F8> benutzt werden).
Wird eine Referenz gefunden, wird der Code ab dem gefundenen Befehl
im Disassembler angezeigt.
<CTRL-F8>
Letzte Suche fortsetzen.
Gesucht wird die zuletzt gesuchte Adresse mit dem zuletzt angegebenen
Referenz-Art (Code / Data) ab dem auf den zuletzt gefundenen Befehl
folgenden Befehl (d.h. nicht ab dem aktuellen Befehl!).
Diese Funktion ist nur möglich, falls vorher mindestens einmal eine
Daten- oder Code-Referenz gesucht wurde.
■ Das Zeichen #26 wird jetzt vom Befehl DC nicht mehr interpretiert.
Zur Kennzeichnung des Endes der Parameters muß daher jetzt das Ver-
kettungszeichen ('^') von MDEBUG verwendet werden
■ Beim Scrollen des Stacks (Taste <TAB>) wird jetzt jeweils der Code
bzw. die Daten für die aktuelle Stack-Adresse in den oberen 10 Zeilen
angezeigt.
Die 'alte Form' des Scrollens kann über die Taste <SHIFT-TAB> aufge-
rufen werden.
■ Falls der Adressen-Stack blockiert ist, kann jetzt auch die Taste
<CursorRight> nicht mehr benutzt werden.
■ Die Ausgabe von immediate Bytes bzw. Words wurde verbessert.
U.a. werden jetzt die Operanden von logischen Befehlen (AND, OR, TEST
und XOR), falls möglich, nur im binären Format ausgegeben.
■ Falls ein Verzweigungsbefehl ( CALL, JMP, INT, etc.) auf einen der
Befehle RET, RETF, IRET oder HLT zeigt, wird dies jetzt hinter dem
Verzweigungsbefehl als Kommentar angezeigt.
■ Durch die Taste <CTRL-End> kann das Fenster des Disassemblers jetzt
in den unteren Bildschirmbereich verschoben werden.
■ Durch die Taste <CTRL-Home> kann das Fenster des Disassemblers jetzt
in den oberen Bildschirmbereich verschoben werden.
■ Über die beiden neuen Parameter '*name' und '&name' kann jetzt der
Status des Disassemblers in eine Datei gesichert bzw. aus einer Datei
geladen werden.
Behobene Fehler in der Version V2.02 vom 01.08.1992
───────────────────────────────────────────────────
■ Die Befehle 'En', 'n:' und die Macro-Funktionen über die Tastenkombi-
nationen <ALT-n> funktionierten in der Version V2.00 des Treibers
MDHISDRV nicht korrekt falls versucht wurde, mehr als einen Befehl in
einem Puffer zu sichern. Der Fehler wurde beseitigt.
■ Der Befehl 'LA' funktionierte ebenfalls nicht korrekt in der Version
V2.00 des Treibers MDHISDRV.COM. Der Fehler wurde korrigiert.
■ Der Parameter '/I' des Treiber MDHISDRV.COM hat in der vorherigen
Version NICHT korrekt funktioniert (Ein über diesen Parameter erstel-
tes Programm hat einen Systemabsturz verursacht). Der Fehler wurde
beseitigt.
■ Falls versucht wurde, eine genau in den Puffer für den Hilfstext
passende neue Hilfstextdatei in eine residente Version von MDEBUG zu
laden, hat MDEBUG in der vorherigen Version irrtümlich die Fehler-
meldung
MDEBUG: Der Puffer der residenten Version ist zu klein!
Die Hilfstextdatei wurde nicht vollständig gelesen.
ausgegeben. Der Fehler wurde beseitigt.
■ In der Version V2.00 von MDEBUG war es nicht möglich, eine mit einem
aktivem Passwort installierte Version von MDEBUG zu ändern, falls das
Passwort nicht schon beim Installieren von MDEBUG aktiv war. Der
Fehler wurde beseitigt.
■ Die in der Vollversion von MDEBUG mitgelieferten Quelltexte der
Bildschirm- und Kommandotreiber wurden komplett neu überarbeitet.
Hierbei wurden auch einige kleinere Fehler (insbesondere bei der
Bearbeitung der Parameter) eliminiert.
■ Ein kleinerer Fehler bei der Ausgabe des Absolutwerts des Offsets
eines Speicheroperanden (ABS: nnnn) im Disassembler wurde korrigiert.
■ Leider hat der Disassembler auch in der vorherigen Version noch nicht
alle möglichen Varianten der Befehle mit dem Opcode 83h korrekt aus-
gegeben. Der Fehler wurde beseitigt.
Erweiterungen der Version V2.02 vom 01.08.1992
──────────────────────────────────────────────
■ Der Puffer für einen Hilfstext für die Online-Hilfe wird von MDEBUG
jetzt immer so aufgerundet, daß der Speicherblock komplett genutzt
wird. (d.h. der eingerichtete Puffer für den Hilfstext kann bis zu
15 Byte größer als die geladene Hilfstext-Datei bzw. der Wert des
Parameters 'BUF' werden.)
■ In der Version V2.02 des Disassemblers MDDISDRV ist es jetzt möglich
die Werte der Schalter und Variablen des Disassemblers auch während
der Anzeige der zweiten Seite der Online-Hilfe zu ändern.
■ Die zweite Seite der Online-Hilfe des Disassemblers kann nun auch
direkt über die Taste <O> aufgerufen werden.
■ Falls die Online-Hilfe des Disassemblers über die Taste <F10> verlas-
sen wird, wird nun der Aufruf von MDEBUG sofort beendet.
■ Der Kommandotreiber MDHISDRV sichert jetzt Befehlszeilen, die über
<CTRL-E> oder <CTRL-X> restauriert wurden nicht noch ein zweitesmal,
falls sie nicht vor der erneuten Ausführung editiert wurden.
■ Zusätzlich wurde im Kommandotreiber MDHISDRV der Befehl 'BS' neu
implementiert. Dieser Befehl liefert im Register CX die Größe des
eingerichteten Puffers für die History-Funktion und im Register AX
die Anzahl der belegten Bytes im Puffer für die History-Funktion.
■ Die Vollversion von MDEBUG enthält jetzt zusätzlich das Util DisStat.
DisStat dient zur Konvertierung der Status-Dateien des Disassemblers
MDDISDRV in ein lesbares Format.
Hinweis: Die von der Version V2.00 erstellten Status-Dateien sind
NICHT kompatibel zu den Status-Dateien der Version V2.02!
■ Zusätzlich wird zu MDEBUG jetzt die Datei A86.TXT mitgeliefert. Diese
enthält eine kurze Beschreibung der in den Quelltexten zu MDEBUG
benutzten speziellen Features des A86.
■ Ebenfalls neu in dieser Version ist die Datei MDEBUG.REF. Diese
enthält eine Kurzbeschreibung der Tastenbelegung und der Befehle von
MDEBUG, der neuen Befehle und Tasten der Kommandotreiber MDHISDRV und
MDDISDRV und der Tastenbelegung des Disassemblers.
Beachten Sie bitte, daß Sie vor dem Ausdrucken dieser Datei die
Formatierungszeichen durch die Druckercodes Ihres Druckers ersetzen
müssen (siehe 'MDEBUG.REF').
Behobene Fehler in der Version V2.05 vom 01.12.1992
───────────────────────────────────────────────────
■ Der Disassembler MDDISDRV hat in der vorherigen Version teilweise die
Meldungen nur teilweise unkomprimiert (will sagen: unleserlich) aus-
gegeben. Der Fehler wurde beseitigt.
■ Der Disassembler MDDISDRV ist in der vorherigen Version auf einem PC
mit 80286 oder höheren Prozessor teilweise (je nach dem installiertem
Interrupt-06h-Handler) in einer Endlosschleife hängengeblieben, falls
im Dump-Modus die Adresse für die letzte Zeile (= Funktion 'Folge dem
Befehl') 0nnnnh:0FFFFh war. Der Fehler wurde behoben.
■ CALLMDB.COM und die Routine CHECKMD (aus CHECKMD.OBJ) finden MDEBUG
jetzt auch, falls es in einen Speicherbereich über 640 K geladen
wurde.
Erweiterungen der Version V2.05 vom 01.12.1992
──────────────────────────────────────────────
■ Meine Adresse hat sich geändert (siehe Datei 'README.DOC').
■ Neu in dieser Version ist die Datei '_T&T_.DOC'. Diese enthält Tips &
Tricks für die Benutzung von MDEBUG.
■ Neu implementiert wurde die Konstante P5. Diese enthält den Offset
der Variablen 'DontHide' (Byte!) von MDEBUG. Falls diese Variable
ungleich 0 ist, restauriert MDEBUG vor dem Beenden des PopUps den
Bildschirm NICHT. Die Variable 'DontHide' wird von MDEBUG bei jeden
neuen Popup wieder auf 0 gesetzt, daher sollte zum Verlassen von
MDEBUG ohne Bildschirm-Restauration ein Macro (über den Kommando-
treiber MDHISDRV) benutzt werden (z.B. 'E9: MOV CS:*[P5],0FF ~ Q').
■ MDEBUG benutzt ab dieser Version nur noch einen simulierten Cursor.
Hierdurch hat die Konstante P4 eine neue Bedeutung bekommen:
Sie enthält nun immer den Offset der Variablen mit dem Farbattributen
für den Cursor (CS:*[P4] = Attribut für den Insert-Modus, CS:*[P4+1]
= Attribut für den Overwrite-Modus).
Zudem wurden die beiden neuen Parameter
'RealCursor=n'
und
'CoC=nn{,mm}'
implementiert (siehe Beschreibung der Parameter von MDEBUG)
■ Die Treiber MDHISDRV.COM und MDDISDRV.COM können nun über den neuen
Parameter /H1 dazu veranlasst werden, den residenten Teil in einen
Speicherbereich oberhalb von A000h zu verschieben.
Das gleiche gilt für MDEBUG selbst, wobei hier der Parameter LOADH
lautet.
Last Minute Infos über MDEBUG und die zugehörigen Utils
───────────────────────────────────────────────────────
Die folgenden Punkte sind in der Dokumentation zu MDEBUG falsch oder
fehlerhaft angegeben:
■ keine bekannten fehlerhaften Angaben in der Dokumentation vorhanden.
Last Minute Changes von MDEBUG und den zugehörigen Utils
────────────────────────────────────────────────────────
Die folgenden Erweiterungen/Änderungen wurden in letzter Minute durch-
geführt und konnten daher noch nicht im Handbuch berücksichtigt werden.
■ keine 'Last Minute Changes' in dieser Version